#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>

typedef int LTDataType;
typedef struct ListNode
{
	LTDataType data;
	struct ListNode* next;
	struct ListNode* prev;
}ListNode;

ListNode* ListInit();

ListNode* ListCreateNode(LTDataType val);

void ListPrint(ListNode* phead);

void ListPushBack(ListNode* phead, LTDataType val);

void ListPopBack(ListNode* phead);

void ListPopFront(ListNode* phead);

void ListPushFront(ListNode* phead,LTDataType val);

ListNode* ListFind(ListNode* phead, LTDataType val);

size_t ListSize(ListNode* phead);

void ListInsert(ListNode* pos, LTDataType val);

void ListErase(ListNode* pos);

void ListDestroy(ListNode* phead);